package likou;

import java.util.HashSet;

/**
 * 题目描述：
 * 给定两个字符串A和B，每个字符串都由许多个字符组成，且在A和B中，每个字符都各只出现最多一次。
 *
 * 将字符串A中，A和B共有的字符的位置顺序，调整为这些字符在B中出现的顺序。
 */
public class 调整字符串顺序 {
    public static void main(String[] args) {
        System.out.println(reorder("ABCDEFG", "CBA"));
    }
    public static String reorder(String a, String b) {
        StringBuilder sb=new StringBuilder();
        HashSet<Character> temp = new HashSet<>();
        HashSet<Character> temp2 = new HashSet<>();
        char[] charsa = a.toCharArray();
        char[] charsb = b.toCharArray();
        for (int i = 0; i < charsa.length; i++) {
            temp2.add(charsa[i]);
        }
        for (int i = 0; i < charsb.length; i++) {
            if (temp2.contains(charsb[i])) {
                sb.append(charsb[i]);
                temp.add(charsb[i]);
            }

        }
        for (int i = 0; i < charsa.length; i++) {
            if (!temp.contains(charsa[i])) sb.append(charsa[i]);
        }
        return  sb.toString();
    }
}
